<?php
// +----------------------------------------------------------------------
// | Copyright (c) 齐力众信
// +----------------------------------------------------------------------
// | Author: 范思宇 
// +----------------------------------------------------------------------

namespace Admin\Model;
use Think\Model;

/**
 * 广告位模型
 */
class PosterSpaceModel extends Model{

    protected $_validate = array(
        array('name', 'require', '广告位名称不能为空', self::EXISTS_VALIDATE, 'regex', self::MODEL_BOTH),
        array('name', '', '广告位名称已经存在', self::VALUE_VALIDATE, 'unique', self::MODEL_BOTH),
        array('width', 'require', '广告位宽度不能为空', self::MUST_VALIDATE , 'regex', self::MODEL_BOTH),
        array('width', 'number', '广告位宽度只能填写正整数', self::VALUE_VALIDATE, 'regex', self::MODEL_BOTH),
        array('height', 'require', '广告位度不能为空', self::MUST_VALIDATE , 'regex', self::MODEL_BOTH),
        array('height', 'number', '广告位高度只能填写正整数', self::VALUE_VALIDATE, 'regex', self::MODEL_BOTH),
    );

    protected $_auto = array(
        array('create_time', NOW_TIME, self::MODEL_INSERT),
        array('status', '1', self::MODEL_BOTH),
    );
    
   /**
     * 获取分类详细信息
     * @param  milit   $id 分类ID或标识
     * @param  boolean $field 查询字段
     * @return array     分类信息
     */
    public function info($id, $field = true){
        /* 获取分类信息 */
        $map = array();
        if(is_numeric($id)){ //通过ID查询
            $map['id'] = $id;
        } else { //通过标识查询
            $map['name'] = $id;
        }
        return $this->field($field)->where($map)->find();
    }
   /**
     * 设置状态
     * @param  $id 数据ID
     * @param  1 开启 0 禁用 
     * $current_state 当前状态
     */
    public function setStatus($id, $status) {

        $result = $this->where(array('id' => $id))->setField('status', $status);
        if ($result) {
            return true;
        } else {
            return false;
        }
    }

    /**
    * 新增或更新一个广告位
    * @param array  $data 手动传入的数据
    * @return boolean fasle 失败 ， int  成功 返回完整的数据
    * @author huajie <banhuajie@163.com>
    */
    public function update(){
        /* 获取数据对象 */
        $data = $this->create();
        if(empty($data)){
            return false;
        }
	
        /* 添加或新增内容 */
        if(empty($data['id'])){ //新增数据
            
            $id = $this->add(); //添加基础内容
	if(!$id){
	   $this->error = '新增出错！';
	   return false;
	}
        
        } else { //更新数据
            $status = $this->save(); //更新基础内容
	if(false === $status){
	   
                $this->error = '更新出错！';
	   return false;
	}
        }

        //内容添加或更新完成
        return $data;
   }

}
?>